/**
 * 精确加法运算
 * @param num1 第一个操作数
 * @param num2 第二个操作数
 * @returns 精确加法的结果
 */
export function add(num1: number, num2: number): number {
  let decimal1 = 0;
  let decimal2 = 0;
  try {
    decimal1 = num1.toString().split('.')[1].length;
  } catch (e) {
    // 整数没有小数部分
  }
  try {
    decimal2 = num2.toString().split('.')[1].length;
  } catch (e) {
    // 整数没有小数部分
  }
  const baseNum = Math.pow(10, Math.max(decimal1, decimal2));
  return (num1 * baseNum + num2 * baseNum) / baseNum;
}

/**
 * 精确减法运算
 * @param num1 被减数
 * @param num2 减数
 * @returns 精确减法的结果
 */
export function subtract(num1: number, num2: number): number {
  return add(num1, -num2);
}

/**
 * 精确乘法运算
 * @param num1 第一个操作数
 * @param num2 第二个操作数
 * @returns 精确乘法的结果
 */
export function multiply(num1: number, num2: number): number {
  let decimal1 = 0;
  let decimal2 = 0;
  try {
    decimal1 = num1.toString().split('.')[1].length;
  } catch (e) {
    // 整数没有小数部分
  }
  try {
    decimal2 = num2.toString().split('.')[1].length;
  } catch (e) {
    // 整数没有小数部分
  }
  const int1 = Number(num1.toString().replace('.', ''));
  const int2 = Number(num2.toString().replace('.', ''));
  return (int1 * int2) / Math.pow(10, decimal1 + decimal2);
}

/**
 * 精确除法运算
 * @param num1 被除数
 * @param num2 除数
 * @returns 精确除法的结果
 */
export function divide(num1: number, num2: number): number {
  if (num2 === 0) {
    throw new Error('除数不能为零');
  }
  let decimal1 = 0;
  let decimal2 = 0;
  try {
    decimal1 = num1.toString().split('.')[1].length;
  } catch (e) {
    // 整数没有小数部分
  }
  try {
    decimal2 = num2.toString().split('.')[1].length;
  } catch (e) {
    // 整数没有小数部分
  }
  const int1 = Number(num1.toString().replace('.', ''));
  const int2 = Number(num2.toString().replace('.', ''));
  return (int1 / int2) * Math.pow(10, decimal2 - decimal1);
}
const ToDuble = (str:any) => {
  if (str <= 9) {
    return "0" + str;
  } else {
    return str;
  }
};
export function getTimeIp(arrList:any[]) {
  let str = "";
  if (arrList && arrList.length) {
    str =
      arrList[0] +
      "-" +
      ToDuble(arrList[1]) +
      "-" +
      ToDuble(arrList[2]) +
      " " +
      ToDuble(arrList[3]) +
      ":" +
      ToDuble(arrList[4]) +
      ":" +
      ToDuble(arrList[5]);
  }
  return str;
}